1. Technical Field
The present invention relates generally to sharing of computer resources, and more particularly to a ticket mechanism for sharing computer resources.
2. Description of Related Art
Computer systems have many shared resources, ranging from memory modules or communication paths. Such shared resources are usually finite and can in some cases act as performance bottlenecks. For example, interconnection paths across large multiple processor systems are often narrower than might be desired for optimum system performance. Signal pins and chip real estate generally limit path and queue size due to cost considerations. This can lead to bandwidth mismatches between path segments. The situation is exacerbated where multiple command, request, or data sources (or, more generally, “transaction sources”) attempt to use the same physical path.
Transaction queues are normally positioned at the entrance to such bottlenecks in order to manage traffic as it passes from a higher bandwidth segment or link to a lower bandwidth link. Such queues are finite in size and are subject to overflow during heavy traffic periods. Therefore, such queues are normally designed to hold off some of their incoming transactions. This is referred to herein as “flow control.” Flow control can take many forms, including transaction retry protocols and busy signals that warn issuers not to bother sending until the signal changes. Such methods of flow control have side effects on system performance. By consuming bandwidth with unsuccessful transactions, retries can seriously affect performance when the demand significantly exceeds the bandwidth of the link. Dedicated busy signals help avoid and often eliminate such wasted attempts, but since their number scales linearly with the source count, their cost quickly becomes prohibitive as the size of the network grows.
Therefore, transaction throughput would be improved and potential starvation avoided by an improved way to moderate high traffic competition for shared resources.